home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 142
/
Gekkan Dennou Club - 2000.3 Vol. 142 (Japan).7z
/
Gekkan Dennou Club - 2000.3 Vol. 142 (Japan) (Track 1).bin
/
tools
/
s_tool
/
env.c
< prev
next >
Wrap
Text File
|
1999-06-08
|
6KB
|
293 lines
#include "JX250.H"
#include <sys\iocs.h>
#include <sys\dos.h>
#include <sys\scsi.h>
#include <stdio.h>
#include <stdlib.h>
//---- 上の群
static UNchar b1[9*7]={
"1122 "
"3344 "
"5566 "
"7788 "
"AABB "
"CCDD "
" "
" 00"
"99ab 00"
};
extern UNchar msp[17];
static int sdid;
/*******************************************
環境
*******************************************/
void EnvMode()
{
int i,ssp,a,x,y;
UNchar *M;
MAP=&MapAdds[64*32];
//----- 画面制作
ssp=_iocs_b_super(0);
for(y=0;y<11;y++){
a=TADDS(16,y);
M=&MAP[16+(y)*32];
for(x=16;x<32;x++,a+=32)
GGSP16_64_S(a,*M++);
}
if ( ssp>=0 )
_iocs_b_super(ssp);
//------
p_12K(17*16,1*16+3,"アスペクト比");
p_12K(17*16,2*16+3,"プリスキャン画像");
p_12K(17*16,3*16+3,"スキャン画像");
p_12K(17*16,4*16+3,"jpeged");
p_12K(17*16,5*16+3,"減色方法");
p_12K(17*16,6*16+3,"記録範囲変更");
p_12K(17*16,9*16+3,"スキャナ SCSI-ID");
//------
Env_AllDraw();
_iocs_ms_limit(16*16+2,0+2,511-2,11*16-1-2);
//------
Env_move();
//---- 終わり (画面を戻す)
_iocs_ms_limit(0,0,511,511);
MAP=MapAdds;
ssp=_iocs_b_super(0);
for(y=0;y<11;y++){
a=TADDS(16,y);
M=&MapAdds[16+(y)*32];
for(x=16;x<32;x++,a+=32)
GGSP16_64_S(a,*M++);
}
if ( ssp>=0 )
_iocs_b_super(ssp);
//--
p_12K(17*16,1*16+3,"原点X");
p_12K(22*16,1*16+3,"原点Y");
p_12K(17*16,3*16+3,"幅");
p_12K(22*16,3*16+3,"高さ");
p_12K(20*16,14*16+3,"濃度補正");
p_12K(20*16,16*16+3,"明度補正");
p_12K(20*16,20*16+3,"γ補正");
p_12K(20*16,25*16+3,"しきい値");
p_12K(20*16,29*16+3,"ドロップアウトカラー");
//- 取り込み座標
i=ScanMode;
ScanMode=-1;
ScanSetMode(i);
//- プリ座標
PosSetDraw(PreX1,PreY1,PreX2,PreY2,PreUnit);
//--
return;
}
/************************************************
環境ループ
***********************************************/
void Env_move()
{
int i,r,f;
int x,y,xx,yy,xo,yo,b;
for(;;){
_dos_keysns();
_dos_change_pr();
xo=-1;
yo=-1;
do {
yy=( i=_ms_curgt_() )&0xFFFF;
xx=i>>16;
if ( xo!=xx || yo!=yy ){
f=fream_mousepos(xx,yy);
MsPat(msp[f+1]);
xo=xx;
yo=yy;
}
if ( _iocs_bitsns(3)&bit(7) ){
AspMode^=1;
Env_AllDraw();
while( _iocs_bitsns(3)&bit(7) );
}
} while( MS_LSW()==0 && (b=MS_RSW())==0 );
if ( b!=0 ) return;
x=xx/16;
y=yy/16;
//printf("%2d,%2d:%2d %02X \r",x,y,f);
r=0;
if ( x>=22 && x<29 && y>=1 && y<10 ){
//--- 上のボックス
i=b1[(x-22)+(y-1)*7];
if ( i==' ' )
continue;
//printf("\t\t<%02X>\r",i);
r=Env_click_botton1( i,xx,yy );
}
if ( r==99 )
return;
while( MS_LSW()!=0 || MS_RSW()!=0 ){
yy=( i=_ms_curgt_() )&0xFFFF;
xx=i>>16;
if ( xo!=xx || yo!=yy ){
f=fream_mousepos(xx,yy);
MsPat(msp[f+1]);
xo=xx;
yo=yy;
}
}
}
return;
}
/************************************************************
上 ボタンチェック
[out] r= 0; 正常終了
1; キャンセル終了
99; 終了
*************************************************************/
int Env_click_botton1( ty,xx,yy )
int ty,xx,yy;
{
int i,j,r;
void ecb1_sub1();
r=0;
switch( ty ){
case('1'):
AspMode=0; // 「画像」の 0;(2:3) 1;(1:1)
break;
case('2'):
AspMode=1; // 「画像」の 0;(2:3) 1;(1:1)
break;
case('3'):
PreViewS=0; // 0;画質。1;速度
break;
case('4'):
PreViewS=1; // 0;画質。1;速度
break;
case('5'):
ScanSpeed=0; // 0;遅い。1;速い
break;
case('6'):
ScanSpeed=1; // 0;遅い。1;速い
break;
case('7'):
JpegedUseMode=0; // 0;64k の時使用する 1;使用しない
break;
case('8'):
JpegedUseMode=1; // 0;64k の時使用する 1;使用しない
break;
case('A'):
C64halfMode=0; // 0;中間処理あり 1;なし
break;
case('B'):
C64halfMode=1; // 0;中間処理あり 1;なし
break;
case('C'):
SaveFrmMode=0; // 0;スキャンサイズに変更
break;
case('D'):
SaveFrmMode=1; // 0;スキャンサイズに変更
break;
case('0'):
if ( sxbotton(27*16+1,8*16+1,27*16+32-2,8*16+32-2,1)==0 ){
r=99;
SCSI_ID=AutoSreachJX(SCSI_ID,-1);
Env_AllDraw();
}
return(r);
case('a'):
case('b'):
i=(TWOSCHK()==-2)?15:7;
sdid=SCSI_ID;
j=SCSI_ID;
_iocs_ms_limit(0,0,511,511);
r=kazu_move( ((ty=='a')?xx:xx-16)&0xFFF0,yy&0xFFF0,0,SCSI_ID,0,i,ecb1_sub1);
_iocs_ms_limit(16*16+2,0+2,511-2,11*16-1-2);
return(r);
}
Env_AllDraw();
return(r);
}
/*+++++++++++++++++++++++++++++++*/
void ecb1_sub1(int l)
{
int i,m;
MsPat(-1);
m=(TWOSCHK()==-2)?15:7;
//if ( sdid<l ){
// for(i=SCSI_ID;i<=m;i++)
// SCSI_ID=AutoSreachJX(i,-1);
//} else {
// for(i=SCSI_ID;i>=0;i--)
// SCSI_ID=AutoSreachJX(i,-1);
//}
MsPat(1);
//sdid=l;
SCSI_ID=l;
Env_AllDraw();
}
/*******************************************************
表示
*******************************************************/
void Env_AllDraw()
{
int ssp;
#define GP_ON(x,y) GGSP16_ON_S(TADDS(x, y),MAP[x+ y*32],MAP[x+1+ y*32])
#define GP_OF(x,y) GGSP16_OF_S(TADDS(x, y),MAP[x+ y*32],MAP[x+1+ y*32])
ssp=_iocs_b_super(0);
//--- アスペクト
if ( AspMode==0 ){ // 「画像」の 0;(2:3) 1;(1:1)
GP_ON(22, 1);
GP_OF(24, 1);
} else {
GP_OF(22, 1);
GP_ON(24, 1);
}
//---
if ( PreViewS==0 ){ // 0;画質。1;速度
GP_ON(22, 2);
GP_OF(24, 2);
} else {
GP_OF(22, 2);
GP_ON(24, 2);
}
//---
if ( ScanSpeed==0 ){ // 0;遅い。1;速い
GP_ON(22, 3);
GP_OF(24, 3);
} else {
GP_OF(22, 3);
GP_ON(24, 3);
}
//---
if ( JpegedUseMode==0 ){ // Jpeged
GP_ON(22, 4);
GP_OF(24, 4);
} else {
GP_OF(22, 4);
GP_ON(24, 4);
}
//--
if ( C64halfMode==0 ){ // 64k color 0;中間処理あり 1;なし
GP_ON(22, 5);
GP_OF(24, 5);
} else {
GP_OF(22, 5);
GP_ON(24, 5);
}
//---
if ( SaveFrmMode==0 ){ // 0;スキャンサイズに変更 1;手動
GP_ON(22, 6);
GP_OF(24, 6);
} else {
GP_OF(22, 6);
GP_ON(24, 6);
}
//--
p_12_sprintf(22*16+2,9*16+2,"%3d",SCSI_ID);
if ( ssp>=0 )
_iocs_b_super(ssp);
}